package br.com.vti.sisp_sicrim.antigo.controller.programa;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.interceptor.download.InputStreamDownload;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Scrp1640fichastela;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;

@Resource
@Path("/antigo/scrp1640fichas")
public class Scrp1640fichas {
	Result result;
	Sessao sessao;
	Scrp1640fichastela scrp1640fichastela;
	Scrp1640fichas scrp1640fichasAnterior;

	public Scrp1640fichas(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	private Scrp1640fichastela preMapas() {

		scrp1640fichastela = new Scrp1640fichastela();

		return scrp1640fichastela;
	}
	
	@Post
	@Get
	public void executar(Scrp1640fichastela scrp1640fichastela) {
		try {
			main(scrp1640fichastela);
		} catch (Exception e) {
			ExceptionProgram excp = new ExceptionProgram();
			excp.trataErroSiscerro(e, sessao, "");
		}
	}

	private void main(Scrp1640fichastela pscrp1640fichastela) throws Exception {
		if (pscrp1640fichastela == null) {
			preMapas();
			scrp1640fichastela.setNavegar("../scrp1640fichas/executar");
			result.include("scrp1640fichastela", scrp1640fichastela);
			sessao.setAtributo("SCRP1640FICHAS", this);
			scrp1640fichastela.enviarTela(true, result, getClass().getSimpleName().toUpperCase());
			return;
		} else {
			restaurarEstados(pscrp1640fichastela);
		}

		scrp1640fichastela.setNavegar("../scrp1640fichas/executar");
		result.include("scrp1640fichastela", scrp1640fichastela);
		sessao.setAtributo("SCRP1640FICHAS", this);
		scrp1640fichastela.enviarTela(true, result, getClass().getSimpleName().toUpperCase());

	}
	@Post
	@Get
	public void menu() {
		Scrp1600 scrp1600 = new Scrp1600(result, sessao);
		scrp1600.executar(null, null, null, null);
	}

	@Post
	@Get
	public InputStreamDownload relatorio1() {

		return (InputStreamDownload) sessao.getAtributo("relatorio1");
	}

	@Post
	@Get
	public InputStreamDownload relatorio2() {

		return (InputStreamDownload) sessao.getAtributo("relatorio2");
	}
	
	@Post
	@Get
	public InputStreamDownload relatorio3() {

		return (InputStreamDownload) sessao.getAtributo("relatorio3");
	}

	private void restaurarEstados(Scrp1640fichastela pscrp1640fichastela) {
		this.scrp1640fichasAnterior = (Scrp1640fichas) sessao
				.getAtributo("SCRP1640FICHAS");
		if (pscrp1640fichastela != null) {
			scrp1640fichastela = pscrp1640fichastela;
		} else {
			scrp1640fichastela = this.scrp1640fichasAnterior.scrp1640fichastela;
		}
		scrp1640fichastela.setSessao(sessao);

	}
}
